package com.df.ez_game.tools;

import com.df.ez_game.server.msg.wrapper.IntWrapper;

import java.util.HashSet;
import java.util.Set;

public class MsgWrapperUtils {
    private static Set<Class<?>> supportClasses = new HashSet<>();
    static {
        supportClasses.add(Integer.TYPE);
        supportClasses.add(Integer.class);
        //int类型的list
        //long类型和long类型的list

        //boolean类型和bool类型的list（BoolListWrapper）

        //string 类型和string类型的list（StringListWrapper）

        //自定义类型的list，对应ByteValueList
    }
    /**
     * 是否是支持包装的类型
     * 包含 :
     * int Integer
     *
     *
     * @param checkClass 检测的类
     * @return
     */
    public static boolean isSupportWrapperType(Class<?> checkClass){
        if(supportClasses.contains(checkClass)){
            return true;
        }
        return false;
    }

    public static Object getRawParam(Object decodeParam, Class paramType) {
        //TODO 支持int long string 等
        if(paramType.equals(IntWrapper.class)){
            IntWrapper bw = (IntWrapper) decodeParam;
            return bw.getValue();
        }
        throw new RuntimeException("未支持的参数类型："+paramType.getName());
    }

    public static Class getWrapperType(Class<?> parameterType) {
        return null;
    }
}
